package cn.stylefeng.guns.modular.car.service;

import cn.stylefeng.guns.modular.car.pojo.response.CarResponse;
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
import cn.stylefeng.guns.modular.car.entity.Car;
import cn.stylefeng.guns.modular.car.pojo.request.CarRequest;
import cn.stylefeng.roses.kernel.rule.pojo.response.ResponseData;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.web.multipart.MultipartFile;


import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

/**
 *  服务类
 *
 * @author xbz
 * @date 2023/04/07 14:21
 */
public interface CarService extends IService<Car> {

	/**
     * 新增
     *
     * @param carRequest 请求参数
     * @author xbz
     * @date 2023/04/07 14:21
     */
    void add(CarRequest carRequest);

	/**
     * 删除
     *
     * @param carRequest 请求参数
     * @author xbz
     * @date 2023/04/07 14:21
     */
    void del(CarRequest carRequest);

	/**
     * 编辑
     *
     * @param carRequest 请求参数
     * @author xbz
     * @date 2023/04/07 14:21
     */
    void edit(CarRequest carRequest);

	/**
     * 查询详情
     *
     * @param carRequest 请求参数
     * @author xbz
     * @date 2023/04/07 14:21
     */
    Car detail(CarRequest carRequest);

	/**
     * 获取列表
     *
     * @param carRequest        请求参数
     * @return List<Car>   返回结果
     * @author xbz
     * @date 2023/04/07 14:21
     */
    List<Car> findList(CarRequest carRequest);

	/**
     * 获取列表（带分页）
     *
     * @param carRequest              请求参数
     * @return PageResult<Car>   返回结果
     * @author xbz
     * @date 2023/04/07 14:21
     */
    PageResult<Car> findPage(CarRequest carRequest);

    /**
     * 获取列表（带分页）
     *
     * @param
     * @return PageResult<Car>   返回结果
     * @author xbz
     * @date 2023/04/07 14:21
     */
    PageResult<CarResponse> selectPage(String name, Integer pageNo, Integer pageSize);


    /**
     * 导入
     * @param file 导入的文件
     * @param response 响应对象
     * @return 结果*/
    void importExcel(MultipartFile file, HttpServletResponse response);
    /**
     * 导出
     * @param response 响应对象
     * @return 结果*/
    void exportExcel(HttpServletResponse response) throws IOException;

    List<Object> carCount();
}